print("hello,it is a lua varible test.\n")
--It is a comment
--[[
It is a  multiline comments

--]]

--数据类型
print("1        的类型为："..type(1)    ..      "\n")
print("1.0      的类型为："..type(1.0)  ..      "\n")
print("\"abc\"  的类型为："..type("abc")..      "\n")
print("print    的类型为："..type(print)..      "\n")
print("true     的类型为："..type(true) ..      "\n")
print("nil      类型为  ："..type(nil)  ..      "\n")



--[[
    Summary:
        lua 有以下几种常用的数据类型：
        1.  nil     :    空，表示一个无效值，当一个变量为值nil时，将会被回收
        2.  number  :    数字，包含整数和浮点数
        3.  string  :    字符串
        4.  boolean :    布尔值，true表示真，false和nil表示假
        5.  function:    函数，也被作为一种类型，因此可以放在Table中
        6.  thread  :    coroutine协同程序，和其他语言中的线程不同
--]]


g_var1 = 123        --全局变量
local l_var1 = 456  --局部变量
print("In file var.lua: ","g_var1-",g_var1,"l_var1-",l_var1,"\n")

function testFunc()
    g_var2 = 321        --全局变量
    local l_var2 = 654  --局部变量
    print("In testFunc: ","g_var1-",g_var1,"l_var1-",l_var1,"g_var2-",g_var2,"l_var2-",l_var2,"\n")
end
testFunc()
print("In file var.lua:","g_var1-",g_var1,"l_var1-",l_var1,"g_var2-",g_var2,"l_var2-",l_var2,"\n")  --l_var2 is nil


--print("In file var.lua:","g_var1 + g_var2-",g_var1+g_var2,"l_var1 + l_var2",l_var1+l_var2,"\n")
print("In file var.lua:","g_var1 + g_var2",g_var1+g_var2,"l_var1 + l_var2 is not allowed! l_var2 is nil !","\n")


--[[
    Summary:
        1.  Lua默认变量为全局变量，定义局部变量要使用local关键字
        2.  全局变量和局部变量的作用域和C语言中一致
        3.  在局部作用域，例如函数，循环，分支等结构中可以修改其父作用阈内的变量包含父作用阈内的局部变量
        4.  如果定义的是全局变量，则父作用域可以修改在子作用域内定义的全局变量

--]]





